2010年04月21日
川俣晶の縁側ソフトウェア技術雑記 total 4124 count

ラムダ式の先にパラレルがあった、ということなのか

Written By: 川俣 晶連絡先

 Visual Studio 2010日本語版がMSDNサブスクライバダウンロードに出てきて、まずはホッとしました。

テストプログラム §

 まずは.NET Framework 4.0の機能を必要とするプログラムを1本。

using System;

using System.Threading;

using System.Threading.Tasks;

class Program

{

    static void Main(string[] args)

    {

        Parallel.For(0, 10, (n) => {

            Thread.Sleep(10000 - n * 1000);

            Console.WriteLine(n);

        });

    }

}

実行結果 §

5

1

6

7

8

0

3

2

9

4

つまり §

 for文で回していれば数値が順番に出てくるはずなので、パラレルに実行されているということですね。ちなみに、実行したマシンは2コアです。

 これを見てはたと思ったのは、ラムダ式を湯水のように多用するスタイルの先には、パラレルがあるということ。プログラムの断片を簡単に変数に入れてメソッドに渡せるということは、メソッドが実行タイミングをスケジューリングするのも容易ということですね。パラレルは難しいと思っていましたが、ラムダ式やデリゲート型という中間ステップを踏むと割と難しくなかったのかも。